home *** CD-ROM | disk | FTP | other *** search
/ PCMania 30 / PCMania CD30.iso / postumum / nnatuscr / misc.inc < prev    next >
Text File  |  1994-07-07  |  2KB  |  107 lines

  1. ─────────────────────────────────────────────────────────────────────────────
  2. ; RUTINAS VARIAS VGA, DETECTAR CPU, TECLADO
  3. ─────────────────────────────────────────────────────────────────────────────
  4.  
  5.  
  6. Barrido Proc
  7.         Mov     Dx,3dah
  8. VRT:
  9.         In      Al,Dx
  10.         Test    Al,8
  11.         Jnz     VRT         ;Espear hasta que el RV empiece
  12. NoVRT:
  13.         In      Al,Dx
  14.         Test    Al,8
  15.         Jz      NoVRT       ;Espear hasta que el RV acabe
  16.         Ret
  17. Barrido Endp
  18.  
  19. PonPaleta MACRO
  20.         Mov     Dx,03c8h
  21.         Out     Dx,Al
  22.         Inc     Dx
  23.         Cld
  24.         Rep     OutSb
  25. ENDM PonPaleta
  26.  
  27. Detect386 Proc
  28.         Pushf
  29.         Xor     ah,ah
  30.         Push    Ax
  31.         Popf
  32.         Pushf
  33.         Pop     Ax
  34.         And     Ah,0f0h
  35.         Cmp     Ah,0f0h
  36.         Je      No386
  37.         Popf
  38.         Jmp     Si386
  39. No386:
  40.         Popf
  41.  
  42.         Mov     Dx,OFFSET Not386
  43.         Mov     Ah,9
  44.         Int     21h
  45.         Mov     Ax,04C00h                   
  46.         Int     21h
  47. Si386:
  48.         Ret
  49. Detect386 Endp
  50.  
  51. Int09   proc
  52.         Push    Ax 
  53.         Push    Bx 
  54.         Push    Dx
  55.         In      Al,60h
  56.         Test    Al,80h
  57.         Jz      Ok
  58.         Xor     Al,Al
  59. Ok:
  60.         Mov     Cs:[Tecla],Al
  61.         
  62.         In      AL,61h
  63.         Mov     AH,AL
  64.         Or      AL,80h
  65.         Out     61h,AL
  66.         Mov     AL,AH
  67.         Out     61h,AL
  68.         Mov     AL,20h         ; Señal de fin de interrupcion 
  69.         Out     20h,AL
  70.  
  71.         Pop     Dx
  72.         Pop     Bx 
  73.         Pop     Ax
  74.         Iret  
  75.         
  76.         OldInt09        Dd 0
  77.         Tecla           Db 0
  78. int09   Endp
  79.  
  80. PonMi09 Proc
  81.         Xor     Ax,Ax
  82.         Mov     Es,Ax
  83.         Mov     Di,09*4  
  84.         Mov     Bx,Es:[Di]
  85.         Mov     Si,Es:[Di+2]
  86.         Mov     Word Ptr Cs:[oldint09],Bx
  87.         Mov     Word Ptr Cs:[oldint09+2],Si
  88.  
  89.         ;pon la nueva interrupción...
  90.  
  91.         Mov     Word Ptr Es:[Di],OffSet int09   
  92.         Mov     Word Ptr Es:[Di+2],Seg int09
  93.         Ret
  94. PonMi09 Endp
  95.  
  96.  
  97. Quita09 Proc
  98.         Xor     Ax,Ax
  99.         Mov     Es,Ax
  100.         Mov     Di,09*4
  101.         Mov     Si,OFFSET oldint09
  102.         Mov     Ax,cs:[si]        
  103.         Mov     es:[di],ax
  104.         Mov     ax,cs:[si+2]
  105.         Mov     es:[di+2],ax        
  106.         Ret
  107. Quita09 Endp